This invention concerns data processing. More particularly, the invention concerns error correction information useful in processing an incoming signal such as a signal obtained by reading media such as CD media.
A digital data stream from an optical storage device can contain a serial data signal in a binary pattern. Digital data streams are read from various forms of digital media, including CD (compact disc) formats. CD formats include CD-ROM, CD-audio, CD-R (CD write once) and CD-RW. The data are typically read from selected data locations in order to recover the original data encoded on the storage media. The problem is that there may be dirt or other foreign material such as fingerprints, organic or inorganic substances. Additionally, there may be scratches on the media or defects stamped in the media during manufacturing that alter the data that is read. The presence of such interfering alterations can damage the data, resulting in elevated data error rates prior to data demodulation and correction.
In Cross-Interleaved Reed-Solomon block encoding of CD data, a PxQ block of data is cross-interleaved with itself and is supplemented with a first group of error control symbols within each of the P rows and with a second group of error control symbols along each of the Q columns of the block, often at the end of each row or column. Cross interleaving and related error control are discussed by K. C. Pohlmann in Principles of Digital Audio, Howard W. Sams Co., Indianapolis, Second Edition, 1989, pp. 202-225 and 349-354. These supplemental error control bits allow the system to detect the presence of up to e(P;c) errors in a single column and up to e(Q;r) errors in a single row, if the number of errors in any column or row is not too large, where e(P;c) and e(Q;r) are selected positive integers. Where the number of errors in a given row or given column is too large, detection of presence of one or more errors is possible, but correction of an error in the given row or column is usually impossible using the Reed-Solomon approach. That given row or column must be corrected in some other manner, for example, by retransmission of the given row or column or block. The system may not recognize the presence of a burst error sequence, having too many errors in a given row or column, and may attempt to correct the data and accept the xe2x80x9ccorrectedxe2x80x9d data for later processing, which will produce erroneous results.
What is needed is an approach that allows a given row or column of symbols to be flagged in a clear and unambiguous sense for CD media, where that row or column is tested and found to contain more than a permitted number of errors. Preferably, the approach should be extendible to an arbitrary size data block and should be flexible enough to permit some variation in the flags or other indicia used to indicate presence of burst errors.
When a defect on a disk is being read, defect detection circuitry will generate a defect detect signal that can be used to mark the data being written to a buffer. An ECC processor can easily determine whether a codeword is correctable or uncorrectable, by checking the number of error markers in the codeword. If the number of error markers is greater than an a codeword threshold number, the processor will mark the codeword as uncorrectable. If the number of error markers is no greater than the error threshold number, the processor can correct the error. However, if a defect signal is not provided and the number of corrected symbols in a codeword is greater than the error threshold number, as where a burst error is present, the ECC processor will produce a xe2x80x9ccorrectedxe2x80x9d codeword that is not, in fact, fully corrected.
When a codeword in a data block is tested and found to contain more than a threshold number of errors, the symbol values (e.g., byte values) in a selected number of symbols in that block are associated with (or overwritten by) a distinguishable symbol value (xe2x80x9cDSVxe2x80x9d) whose presence is easily sensed. When more than a threshold number of DSVs is sensed in a data block, that data block can be subjected to an error control treatment, other than EDC and Reed-Solomon ECC, to attempt to correct the errors and to recover the original correct data in the block.
According to the invention, when a codeword of the data block is found to have more than the threshold number of errors, a selected number of (preferably consecutive) DSVs is placed in at least one codeword of the block. When the block is further processes and the presence of the DSVs is sensed, the system interprets this occurrence as indicating that an uncorrectable group of errors has occurred in a codeword of the block.
According to the invention, the determination is made for a serial data stream. The determination is made when reading disc media, which in a particular embodiment is disc media which in some instances conforms to the CD format. The determination is made for disc media that conform to the CD format and may also apply for disc media which conforms to a DVD format.